/**
 * desc: .
 * User : hjt
 * Date : 2017/1/2
 */


/*
* deferred对象就是jQuery的回调函数解决方案
*
* http://www.ruanyifeng.com/blog/2011/08/a_detailed_explanation_of_jquery_deferred_object.html
*
* 　$.ajax("test.html")
 　　.done(function(){ alert("哈哈，成功了！"); })
 　　.fail(function(){ alert("出错啦！"); });
*
* */

function show(time){

    var dfd = $.Deferred();
    setTimeout(function(){
        console.log(time+"秒后执行");
        dfd.resolve();
    },time*1000);

    return dfd;
};

function show2(time){

    var dfd = $.Deferred();
    setTimeout(function(){
        console.log(time+"秒后执行");
        dfd.resolve();
    },time*2000);

    return dfd;
};

function show3(time){

    var dfd = $.Deferred();
    setTimeout(function(){
        console.log(time+"秒后执行");
        dfd.resolve();
    },time*3000);

    return dfd;
};


/* var p = Promise.all([show(1),show2(2),show3(3)]);

 p.then(function(){
 console.log("都执行成功的时候才会执行这里...");
 },function(){
 console.log("只要有一个失败的时候就进入，并且阻止执行...");
 });*/


$.when(show(1),show2(2),show3(3)).then(function(){
    console.log("都执行成功的时候才会执行这里...");
},function(){
    console.log("只要有一个失败的时候就进入，并且阻止执行...");
});